2  Manipulación de dataframe

En el siguiente capitulo veremos sobre que es, su manipulacion y lo que se necesita para realizar un estudio hacia los dataframes.

2.1 Funciones, Módulos y Librerías principales en R.

2.1.1 Funciones

2.1.1.1 Funciones incorporadas

Son funciones ya predeterminadas del RStudio, algunos ejemplos son:

#Funciones incorporadas
vector <- c(14,20,18,16,16,15)

#sumatoria
sumatoria <- sum(vector)
print(sumatoria)
[1] 99
#media
media <- mean(vector)
print(media)
[1] 16.5
#maximo
maximo <- max(vector)
print(maximo)
[1] 20
#minimo
minimo <- min(vector)
print(minimo)
[1] 14

2.1.1.2 Funciones de manipulación de datos

Con la ayuda de un paquete dslabs y los diversos paquetes que nos brinden esas funciones realizaremos ejemplos de manipulacion ded atos en el apartado Dataframe.

2.1.2 Modulos

Los modulos en Rstudio usan la funcion function, la que nos permite almacenarlo y reutilizarlo cuando necesitemos el uso del codigo.

# function
calcular_promedio <- function(x) {
  mean(x)
}

edades <- c(14,23,11,16,13,26)

Promedio_e <- calcular_promedio(edades)

print(Promedio_e)
[1] 17.16667

2.1.3 Librerías principales

Para el uso de un dataframe en Rstudio, se requieren de librería que te permitan realizar funciones que el RStudio no posee para el trabajo en tablas estadisticas.

Las librerias principales que instalaremos y usaremos seran:

2.1.3.1 tidyverse

Es un paquete que nos permite realizar varias funciones que nos permitan la manipulacion, exploracion, importacion y visualizacion de datos. Esta compuesto de varios paquetes entre los mas importantes estan: ggplot2, dplyr, entre otros.

library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

2.1.3.2 ggplot2

Como lo mencionamos anteriormente, esta dentro del paquete tidyverse. La libreria ggplot2 nos permite visualizar en formas de graficos y tablas los datos.

library(ggplot2)

2.1.3.3 dplyr

Esta libreria nos permite realizar una serie de funciones para la manipulación de data frames. Algunas de las funciones que proporciona este paquete son: filter(), count(), group_by(), entre otros.

library(dplyr)

2.1.3.4 dslabs

Es una libreria que nos proporciona dataframes para su manipulacion y manejo.

library(dslabs)

2.1.3.5 readxl

Nos sirve para poder leer diversos archivos de diferentes tipos

library(readxl)

2.2 Dataframe, Manipulación e Introducción al análisis de datos.

2.2.1 Introduccion al analisis de datos y Dataframe

Un dataframe en Rstudio es una base de datos de dos dimensiones que pueden contener diferentes tipos de datos, siendo usadas para la realizacion de su analisis, manipulacion e importacion.

Cargamos un dataframe de la libreria dslabs

data("murders")

Mostramos los primeros registros

head(murders)
       state abb region population total
1    Alabama  AL  South    4779736   135
2     Alaska  AK   West     710231    19
3    Arizona  AZ   West    6392017   232
4   Arkansas  AR  South    2915918    93
5 California  CA   West   37253956  1257
6   Colorado  CO   West    5029196    65

2.2.1.1 class

La funcion “class” identifica el tipo de objeto que tenemos.

class(murders)
[1] "data.frame"

2.2.1.2 dim

La funcion dim nos da el numero de filas y columnas que posee nuestro dataframe.

dim(murders)
[1] 51  5

2.2.1.3 names

La funcion names da el nombre de las columnas del dataframe

names(murders)
[1] "state"      "abb"        "region"     "population" "total"     

2.2.1.4 str

La funcion str, ademas de dar el nombre de las columnas, brinda el tipo de variable que posee cada una

str(murders)
'data.frame':   51 obs. of  5 variables:
 $ state     : chr  "Alabama" "Alaska" "Arizona" "Arkansas" ...
 $ abb       : chr  "AL" "AK" "AZ" "AR" ...
 $ region    : Factor w/ 4 levels "Northeast","South",..: 2 4 4 2 4 4 1 2 2 2 ...
 $ population: num  4779736 710231 6392017 2915918 37253956 ...
 $ total     : num  135 19 232 93 1257 ...

2.2.2 Manipulación de datos

2.2.2.1 pipeline

Es una forma de encadenar funciones a las diversas funciones haciendo que sea mas estructurado el código. Se usara para la realizacion de las demas funciones

2.2.2.2 arrange

Reordena las filas de un dataframe

murders_ar<- murders%>%arrange(total)
murders_ar
                  state abb        region population total
1               Vermont  VT     Northeast     625741     2
2          North Dakota  ND North Central     672591     4
3         New Hampshire  NH     Northeast    1316470     5
4               Wyoming  WY          West     563626     5
5                Hawaii  HI          West    1360301     7
6          South Dakota  SD North Central     814180     8
7                 Maine  ME     Northeast    1328361    11
8                 Idaho  ID          West    1567582    12
9               Montana  MT          West     989415    12
10         Rhode Island  RI     Northeast    1052567    16
11               Alaska  AK          West     710231    19
12                 Iowa  IA North Central    3046355    21
13                 Utah  UT          West    2763885    22
14        West Virginia  WV         South    1852994    27
15             Nebraska  NE North Central    1826341    32
16               Oregon  OR          West    3831074    36
17             Delaware  DE         South     897934    38
18            Minnesota  MN North Central    5303925    53
19               Kansas  KS North Central    2853118    63
20             Colorado  CO          West    5029196    65
21           New Mexico  NM          West    2059179    67
22               Nevada  NV          West    2700551    84
23             Arkansas  AR         South    2915918    93
24           Washington  WA          West    6724540    93
25          Connecticut  CT     Northeast    3574097    97
26            Wisconsin  WI North Central    5686986    97
27 District of Columbia  DC         South     601723    99
28             Oklahoma  OK         South    3751351   111
29             Kentucky  KY         South    4339367   116
30        Massachusetts  MA     Northeast    6547629   118
31          Mississippi  MS         South    2967297   120
32              Alabama  AL         South    4779736   135
33              Indiana  IN North Central    6483802   142
34       South Carolina  SC         South    4625364   207
35            Tennessee  TN         South    6346105   219
36              Arizona  AZ          West    6392017   232
37           New Jersey  NJ     Northeast    8791894   246
38             Virginia  VA         South    8001024   250
39       North Carolina  NC         South    9535483   286
40             Maryland  MD         South    5773552   293
41                 Ohio  OH North Central   11536504   310
42             Missouri  MO North Central    5988927   321
43            Louisiana  LA         South    4533372   351
44             Illinois  IL North Central   12830632   364
45              Georgia  GA         South    9920000   376
46             Michigan  MI North Central    9883640   413
47         Pennsylvania  PA     Northeast   12702379   457
48             New York  NY     Northeast   19378102   517
49              Florida  FL         South   19687653   669
50                Texas  TX         South   25145561   805
51           California  CA          West   37253956  1257

2.2.2.3 select

Nos muestra solamente las columnas seleccinadas

murders_sel <- murders %>% select(region, population, state)
murders_sel
          region population                state
1          South    4779736              Alabama
2           West     710231               Alaska
3           West    6392017              Arizona
4          South    2915918             Arkansas
5           West   37253956           California
6           West    5029196             Colorado
7      Northeast    3574097          Connecticut
8          South     897934             Delaware
9          South     601723 District of Columbia
10         South   19687653              Florida
11         South    9920000              Georgia
12          West    1360301               Hawaii
13          West    1567582                Idaho
14 North Central   12830632             Illinois
15 North Central    6483802              Indiana
16 North Central    3046355                 Iowa
17 North Central    2853118               Kansas
18         South    4339367             Kentucky
19         South    4533372            Louisiana
20     Northeast    1328361                Maine
21         South    5773552             Maryland
22     Northeast    6547629        Massachusetts
23 North Central    9883640             Michigan
24 North Central    5303925            Minnesota
25         South    2967297          Mississippi
26 North Central    5988927             Missouri
27          West     989415              Montana
28 North Central    1826341             Nebraska
29          West    2700551               Nevada
30     Northeast    1316470        New Hampshire
31     Northeast    8791894           New Jersey
32          West    2059179           New Mexico
33     Northeast   19378102             New York
34         South    9535483       North Carolina
35 North Central     672591         North Dakota
36 North Central   11536504                 Ohio
37         South    3751351             Oklahoma
38          West    3831074               Oregon
39     Northeast   12702379         Pennsylvania
40     Northeast    1052567         Rhode Island
41         South    4625364       South Carolina
42 North Central     814180         South Dakota
43         South    6346105            Tennessee
44         South   25145561                Texas
45          West    2763885                 Utah
46     Northeast     625741              Vermont
47         South    8001024             Virginia
48          West    6724540           Washington
49         South    1852994        West Virginia
50 North Central    5686986            Wisconsin
51          West     563626              Wyoming

2.2.2.4 mutate

Agrega una nueva columna al dataframe

murders<- mutate(murders, average_for_person=total/population)
murders
                  state abb        region population total average_for_person
1               Alabama  AL         South    4779736   135       2.824424e-05
2                Alaska  AK          West     710231    19       2.675186e-05
3               Arizona  AZ          West    6392017   232       3.629527e-05
4              Arkansas  AR         South    2915918    93       3.189390e-05
5            California  CA          West   37253956  1257       3.374138e-05
6              Colorado  CO          West    5029196    65       1.292453e-05
7           Connecticut  CT     Northeast    3574097    97       2.713972e-05
8              Delaware  DE         South     897934    38       4.231937e-05
9  District of Columbia  DC         South     601723    99       1.645275e-04
10              Florida  FL         South   19687653   669       3.398069e-05
11              Georgia  GA         South    9920000   376       3.790323e-05
12               Hawaii  HI          West    1360301     7       5.145920e-06
13                Idaho  ID          West    1567582    12       7.655102e-06
14             Illinois  IL North Central   12830632   364       2.836961e-05
15              Indiana  IN North Central    6483802   142       2.190073e-05
16                 Iowa  IA North Central    3046355    21       6.893484e-06
17               Kansas  KS North Central    2853118    63       2.208111e-05
18             Kentucky  KY         South    4339367   116       2.673201e-05
19            Louisiana  LA         South    4533372   351       7.742581e-05
20                Maine  ME     Northeast    1328361    11       8.280881e-06
21             Maryland  MD         South    5773552   293       5.074866e-05
22        Massachusetts  MA     Northeast    6547629   118       1.802179e-05
23             Michigan  MI North Central    9883640   413       4.178622e-05
24            Minnesota  MN North Central    5303925    53       9.992600e-06
25          Mississippi  MS         South    2967297   120       4.044085e-05
26             Missouri  MO North Central    5988927   321       5.359892e-05
27              Montana  MT          West     989415    12       1.212838e-05
28             Nebraska  NE North Central    1826341    32       1.752137e-05
29               Nevada  NV          West    2700551    84       3.110476e-05
30        New Hampshire  NH     Northeast    1316470     5       3.798036e-06
31           New Jersey  NJ     Northeast    8791894   246       2.798032e-05
32           New Mexico  NM          West    2059179    67       3.253724e-05
33             New York  NY     Northeast   19378102   517       2.667960e-05
34       North Carolina  NC         South    9535483   286       2.999324e-05
35         North Dakota  ND North Central     672591     4       5.947151e-06
36                 Ohio  OH North Central   11536504   310       2.687123e-05
37             Oklahoma  OK         South    3751351   111       2.958934e-05
38               Oregon  OR          West    3831074    36       9.396843e-06
39         Pennsylvania  PA     Northeast   12702379   457       3.597751e-05
40         Rhode Island  RI     Northeast    1052567    16       1.520093e-05
41       South Carolina  SC         South    4625364   207       4.475323e-05
42         South Dakota  SD North Central     814180     8       9.825837e-06
43            Tennessee  TN         South    6346105   219       3.450936e-05
44                Texas  TX         South   25145561   805       3.201360e-05
45                 Utah  UT          West    2763885    22       7.959810e-06
46              Vermont  VT     Northeast     625741     2       3.196211e-06
47             Virginia  VA         South    8001024   250       3.124600e-05
48           Washington  WA          West    6724540    93       1.382994e-05
49        West Virginia  WV         South    1852994    27       1.457101e-05
50            Wisconsin  WI North Central    5686986    97       1.705649e-05
51              Wyoming  WY          West     563626     5       8.871131e-06

2.2.2.5 filter

Permite colocar una condicion que de ser cumplida se mostrara.

murders_fil <- murders %>% filter(total<50 & average_for_person<1)
murders_fil
           state abb        region population total average_for_person
1         Alaska  AK          West     710231    19       2.675186e-05
2       Delaware  DE         South     897934    38       4.231937e-05
3         Hawaii  HI          West    1360301     7       5.145920e-06
4          Idaho  ID          West    1567582    12       7.655102e-06
5           Iowa  IA North Central    3046355    21       6.893484e-06
6          Maine  ME     Northeast    1328361    11       8.280881e-06
7        Montana  MT          West     989415    12       1.212838e-05
8       Nebraska  NE North Central    1826341    32       1.752137e-05
9  New Hampshire  NH     Northeast    1316470     5       3.798036e-06
10  North Dakota  ND North Central     672591     4       5.947151e-06
11        Oregon  OR          West    3831074    36       9.396843e-06
12  Rhode Island  RI     Northeast    1052567    16       1.520093e-05
13  South Dakota  SD North Central     814180     8       9.825837e-06
14          Utah  UT          West    2763885    22       7.959810e-06
15       Vermont  VT     Northeast     625741     2       3.196211e-06
16 West Virginia  WV         South    1852994    27       1.457101e-05
17       Wyoming  WY          West     563626     5       8.871131e-06

2.2.2.6 summarize y group_by

Summarize genera una tabla con un resumen estadistico de las variables seleccionadas. Esto se asocia con group_by que agrupa los casos a partir de la columna escogida.

murders%>% group_by(region)%>%summarise(media_1= mean(total),desviación_1=sd(total), sum_total=sum(total))
# A tibble: 4 × 4
  region        media_1 desviación_1 sum_total
  <fct>           <dbl>        <dbl>     <dbl>
1 Northeast        163.         200.      1469
2 South            247.         213.      4195
3 North Central    152.         154.      1828
4 West             147          339.      1911

2.3 Flujo del proceso de análisis de datos.

Es una tecnica que busca explorar los datos que se ingresan a traves de un sistema, mayormente enun diagrama de flujo de datos

2.4 Importación de datos (ejemplificar para diversos tipos de archivos).

2.4.1 Carga de un dataset en formato csv desde internet

Para cargar un dataset en Rstudio haremos lo siguiente:

#Le asignaremos un nombre a nuestro link
url <- "https://raw.githubusercontent.com/korbinianheimerl/predictingMissingValues/main/train.csv"
#Leemos los datos y los cargamos en una variable llamada market_df
market_df <- read.csv(url)

Usamos head para ver sus principales datos

head(market_df)
  PassengerId Survived Pclass
1           1        0      3
2           2        1      1
3           3        1      3
4           4        1      1
5           5        0      3
6           6        0      3
                                                 Name    Sex Age SibSp Parch
1                             Braund, Mr. Owen Harris   male  22     1     0
2 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female  38     1     0
3                              Heikkinen, Miss. Laina female  26     0     0
4        Futrelle, Mrs. Jacques Heath (Lily May Peel) female  35     1     0
5                            Allen, Mr. William Henry   male  35     0     0
6                                    Moran, Mr. James   male  NA     0     0
            Ticket    Fare Cabin Embarked
1        A/5 21171  7.2500              S
2         PC 17599 71.2833   C85        C
3 STON/O2. 3101282  7.9250              S
4           113803 53.1000  C123        S
5           373450  8.0500              S
6           330877  8.4583              Q

2.4.2 Carga de un dataset en formato csv

data_csv <- read.csv("C:/Users/User/Desktop/Rstudio/Datasets/train.csv")

Usamos head para ver sus principales datos

head(data_csv)
  PassengerId Survived Pclass
1           1        0      3
2           2        1      1
3           3        1      3
4           4        1      1
5           5        0      3
6           6        0      3
                                                 Name    Sex Age SibSp Parch
1                             Braund, Mr. Owen Harris   male  22     1     0
2 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female  38     1     0
3                              Heikkinen, Miss. Laina female  26     0     0
4        Futrelle, Mrs. Jacques Heath (Lily May Peel) female  35     1     0
5                            Allen, Mr. William Henry   male  35     0     0
6                                    Moran, Mr. James   male  NA     0     0
            Ticket    Fare Cabin Embarked
1        A/5 21171  7.2500              S
2         PC 17599 71.2833   C85        C
3 STON/O2. 3101282  7.9250              S
4           113803 53.1000  C123        S
5           373450  8.0500              S
6           330877  8.4583              Q

2.4.3 Carga de un dataset en formato xlsx

data_xlsx <- read_excel("C:/Users/User/Desktop/Rstudio/Datasets/updated_df_withage.xlsx")
New names:
• `` -> `...1`

Usamos head para ver sus principales datos

head(data_xlsx)
# A tibble: 6 × 9
   ...1 Survived Pclass   Sex   Age SibSp Parch  Fare Ageismissing
  <dbl>    <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl>       
1     0        0      3     1  22       1     0  7.25 FALSE       
2     1        1      1     0  38       1     0 71.3  FALSE       
3     2        1      3     0  26       0     0  7.92 FALSE       
4     3        1      1     0  35       1     0 53.1  FALSE       
5     4        0      3     1  35       0     0  8.05 FALSE       
6     5        0      3     1  29.1     0     0  8.46 TRUE